From f957b697f9f20383e60694b96eb84d2787c332eb Mon Sep 17 00:00:00 2001 From: Jeroen van der Heijden Date: Wed, 26 Sep 2018 13:35:07 +0200 Subject: [PATCH] Adding iso8601 test --- test/test.sh | 12 ++++--- test/test_ctree/sources | 2 +- test/test_ctree/test_ctree.c | 19 +++++++++++ test/test_iso8601/sources | 1 + test/test_iso8601/test_iso8601.c | 54 ++++++++++++++++++++++++++++++++ 5 files changed, 83 insertions(+), 5 deletions(-) create mode 100644 test/test_iso8601/sources create mode 100644 test/test_iso8601/test_iso8601.c diff --git a/test/test.sh b/test/test.sh index d38d7ec1..e6629766 100755 --- a/test/test.sh +++ b/test/test.sh @@ -9,7 +9,7 @@ run () { rm "$OUT" 2> /dev/null gcc -I"../include" -O0 -g3 -Wall -Wextra -Winline -std=gnu99 $SOURCE $C_SRC -o "$OUT" - if hash valgrind 2>/dev/null; then + if [[ "$NOMEMTEST" -ne "1" ]] && hash valgrind 2>/dev/null; then echo -n "(memtest) " valgrind --tool=memcheck --error-exitcode=1 --leak-check=full -q ./$OUT else @@ -19,8 +19,12 @@ run () { rm "$OUT" 2> /dev/null } -for d in test_*/ ; do - run "${d%?}" -done +if [ $# -eq 0 ]; then + for d in test_*/ ; do + run "${d%?}" + done +else + run "$1" +fi exit $RET \ No newline at end of file diff --git a/test/test_ctree/sources b/test/test_ctree/sources index 049d2b92..5ca6aa55 100755 --- a/test/test_ctree/sources +++ b/test/test_ctree/sources @@ -1,2 +1,2 @@ ../src/ctree/ctree.c -../src/logger/logger.c \ No newline at end of file +../src/logger/logger.c diff --git a/test/test_ctree/test_ctree.c b/test/test_ctree/test_ctree.c index 1c86bdb8..39b6024a 100644 --- a/test/test_ctree/test_ctree.c +++ b/test/test_ctree/test_ctree.c @@ -60,6 +60,25 @@ int main() _assert (ct_add(ctree, "", entries[0]) == CT_EXISTS); } + /* test get */ + { + for (unsigned int i = 0; i < num_entries; i++) + { + _assert (ct_get(ctree, entries[i]) == entries[i]); + } + } + + /* test getn */ + { + for (unsigned int i = 0; i < num_entries; i++) + { + _assert (ct_getn( + ctree, + entries[i], + strlen(entries[i])) == entries[i]); + } + } + /* test pop value */ { for (unsigned int i = 0; i < num_entries; i++) diff --git a/test/test_iso8601/sources b/test/test_iso8601/sources new file mode 100644 index 00000000..c03482bc --- /dev/null +++ b/test/test_iso8601/sources @@ -0,0 +1 @@ +../src/iso8601/iso8601.c diff --git a/test/test_iso8601/test_iso8601.c b/test/test_iso8601/test_iso8601.c new file mode 100644 index 00000000..fb7ccf4c --- /dev/null +++ b/test/test_iso8601/test_iso8601.c @@ -0,0 +1,54 @@ +/* + * test_smap.c + * + * Created on: Sep 30, 2017 + * Author: Jeroen van der Heijden + */ + + +#include "../test.h" +#include + + +int main() +{ + test_start("iso8601"); + + iso8601_tz_t amsterdam = iso8601_tz("Europe/Amsterdam"); + _assert(amsterdam > 0); + + iso8601_tz_t utc = iso8601_tz("UTC"); + _assert(utc > 0); + + /* Some extra time zone test for case sensitivity etc. */ + _assert(iso8601_tz("NAIVE") == 0); + _assert(iso8601_tz("europe/KIEV") > 0); + _assert(iso8601_tz("Ams") < 0); + + /* Test parsing a year with time-zone information */ + printf("%ld", iso8601_parse_date("2013", amsterdam)); + _assert(iso8601_parse_date("2013", amsterdam) == 1356994800); + + /* Customer offset should be preferred over UTC */ + _assert(iso8601_parse_date("2013+01", utc) == 1356994800); + + /* UTC should be preferred over given time-zone (Amsterdam) */ + _assert(iso8601_parse_date("2013Z", amsterdam) == 1356998400); + + /* Test with minute precision */ + _assert(iso8601_parse_date("2013-02-06T13:01:12", utc) == 1360155672); + + /* Test short written */ + _assert(iso8601_parse_date("2013-2-6 13:1:12", utc) == 1360155672); + + /* Test summer time */ + _assert(iso8601_parse_date("2016-04-21", amsterdam) == 1461189600); + + /* Test error */ + _assert(iso8601_parse_date("2016 04 21", amsterdam) == -1); + + /* Test last day in year */ + _assert(iso8601_parse_date("2013-12-31", utc) == 1388448000); + + return test_end(); +} -- 2.30.2